/*
ID: icerupt1
PROG: fc
LANG: C++11
*/

/* solution
 *
 * good. mark for template.
 * 凸包，极角序。
 * https://en.wikipedia.org/wiki/Graham_scan
 *
*/
#include <fstream>
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <vector>

std::ifstream fin {"fc.in" };
std::ofstream fout{"fc.out"};

template <class T>
struct point
{
	using value_type = T;
	point(value_type x, value_type y) : x(x), y(y) {};
	point() {};
	value_type x, y;
	double polar_angle;
};

template <class T>
bool operator<(point<T> const & a, point<T> const & b)
{
	return (a.y < b.y || (a.y == b.y && a.x < b.x));
}

template <class T>
std::ifstream & operator>>(std::ifstream & is, point<T> & a)
{
	is >> a.x >> a.y;
	return is;
}

std::vector<point<double>> points;

template <class T>
T ccw(point<T> const & a, point<T> const & b, point<T> const & c)
{
	return (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x);
}

template <class T>
double dis(point<T> const & a, point<T> const & b)
{
	double sx = (a.x - b.x) * (a.x - b.x);
	double sy = (a.y - b.y) * (a.y - b.y);
	return std::sqrt(sx + sy);
}

int main()
{
	int n; fin >> n;

	points.resize(n+1);
	for (int i = 1; i <= n; i++) {
		fin >> points[i];
		if (points[i] < points[1]) std::swap(points[i], points[1]);
	}
	for (int i = 2; i <= n; i++) {
		auto x = points[i].x - points[1].x;
		auto y = points[i].y - points[1].y;
		points[i].polar_angle = std::atan(double(y)/double(x));
		if (points[i].polar_angle < 0) points[i].polar_angle += M_PI;
	}

	std::sort(points.begin()+2, points.end(), [](point<double> const & a, point<double> const & b){
				return a.polar_angle < b.polar_angle;
			});
	points[0] = points[n];

	int c = 1; //convex points counter
	for (int i = 2; i <= n; i++) {
		for (; i <= n && ccw(points[c-1], points[c], points[i]) <= 0; )
			(c > 1) ? c-- : i++;
		std::swap(points[++c], points[i]);
	}

	double ans = 0;
	for (int i = 1; i <= c; i++)
		ans += dis(points[i], points[i-1]);

	std::cout << std::fixed << std::setprecision(2) << ans <<'\n';
	fout << std::fixed << std::setprecision(2) << ans <<'\n';
}

